package com.lilosoft.core.factory;

import javax.servlet.http.HttpServletRequest;

import com.baomidou.mybatisplus.plugins.Page;
import com.lilosoft.core.utils.HttpUtil;
import com.lilosoft.core.utils.commons.StringUtils;

/**
 * BootStrap Table默认的分页参数创建
 *
 * @author qiusheng
 * @version 2018-05-25
 */
public class PageFactory<T> {
	
	/**
	 * 生成分页排序对象
	 * 由SQL语句决定排序字段和顺序
	 */
    public Page<T> defaultPage() {
        HttpServletRequest request = HttpUtil.getRequest();
        int currentPage = StringUtils.isEmpty(request.getParameter("currentPage")) ? 1 : Integer.valueOf(request.getParameter("currentPage"));     //每页多少条数据
        int pageSize = StringUtils.isEmpty(request.getParameter("pageSize")) ? 10 : Integer.valueOf(request.getParameter("pageSize"));   //每页的偏移量(本页当前有多少条)
        
        Page<T> page = new Page<>(currentPage, pageSize);
        page.setOpenSort(false);
        return page;
    }
	
//	/**
//	 * 生成分页排序对象
//	 * 由SQL语句决定排序字段和顺序
//	 */
//    public Page<T> defaultPage() {
//        HttpServletRequest request = HttpUtil.getRequest();
//        int limit = Integer.valueOf(request.getParameter("limit"));     //每页多少条数据
//        int offset = Integer.valueOf(request.getParameter("offset"));   //每页的偏移量(本页当前有多少条)
//        
//        Page<T> page = new Page<>((offset / limit + 1), limit);
//        page.setOpenSort(false);
//        return page;
//    }
//
//	/**
//	 * 生成分页排序对象
//	 * @param sortField
//	 * @param sortOrder
//	 * @return
//	 */
//    public Page<T> defaultPage(String sortField, String sortOrder) {
//        HttpServletRequest request = HttpUtil.getRequest();
//        int limit = Integer.valueOf(request.getParameter("limit"));     //每页多少条数据
//        int offset = Integer.valueOf(request.getParameter("offset"));   //每页的偏移量(本页当前有多少条)
//        String sort = request.getParameter("sort");         //排序字段名称
//        String order = request.getParameter("order");       //asc或desc(升序或降序)
//        
//        sort = StringUtils.isNotEmpty(sort) ? sort : sortField;
//        order = StringUtils.isNotEmpty(order) ? order : sortOrder;
//        
//        if (StringUtils.isEmpty(sort)) {
//            Page<T> page = new Page<>((offset / limit + 1), limit);
//            page.setOpenSort(false);
//            return page;
//        } else {
//            Page<T> page = new Page<>((offset / limit + 1), limit, sort);
//            if (Order.ASC.getValue().equals(order)) {
//                page.setAsc(true);
//            } else {
//                page.setAsc(false);
//            }
//            return page;
//        }
//    }
    
//    /**
//     * 生成排序对象
//     * 由SQL语句决定排序字段和顺序
//     * @param sortField
//     * @param sortOrder
//     * @return
//     */
//    public Page<T> allPage() {
//    	Page<T> page = new Page<>(1, Integer.MAX_VALUE);
//        return page;
//    }
//    
//    /**
//     * 生成排序对象
//     * @param sortField
//     * @param sortOrder
//     * @return
//     */
//    public Page<T> allPage(String sortField, String sortOrder) {
//    	HttpServletRequest request = HttpUtil.getRequest();
//    	String sort = request.getParameter("sort");         //排序字段名称
//        String order = request.getParameter("order");       //asc或desc(升序或降序)
//        
//        sort = StringUtils.isNotEmpty(sort) ? sort : sortField;
//        order = StringUtils.isNotEmpty(order) ? order : sortOrder;
//        
//    	Page<T> page = new Page<>(1, Integer.MAX_VALUE, sort);
//    	if (Order.ASC.getValue().equals(order)) {
//            page.setAsc(true);
//        } else {
//            page.setAsc(false);
//        }
//        return page;
//    }
}
